package com.goldgov.conference.service;

import java.util.List;

import com.goldgov.synchronous.service.ConferenceSynchronous;

public interface ConferenceStatService {
	
	
	/**
	 * 支部首页统计 START
	 */
	/**
	 * 当前登录党员所在支部统计
	 * @date 2018年8月24日 下午2:50:15 
	 * @author hanxiangyu
	 * @param conferenceStat
	 * @return
	 */
	ConferenceStat getPortalPartyBranchStat(ConferenceStat conferenceStat);
	
	/**
	 * 同级党支部排行情况统计
	 * @date 2018年6月20日 下午3:54:57 
	 * @author hanxiangyu
	 * @param conferenceStat
	 * @return
	 */
	List<ConferenceStat> getPortalPartyORankStat(ConferenceStatQuery query);
	
	/**
	 * 支部首页统计 END
	 */
	
	
	
	
	
	/**
	 * 本支部组织生活统计分析
	 * @date 2018年6月19日 下午7:26:49 
	 * @author hanxiangyu
	 * @param conferenceStat
	 * @return
	 */
	public ConferenceStat getPartyOrganizationLife(ConferenceStat conferenceStat);
	/**
	 * 会议出勤情况
	 * @date 2018年6月20日 上午9:57:33 
	 * @author hanxiangyu
	 * @param conferenceStat
	 * @return
	 */
	public ConferenceStat getAttenanceStat(ConferenceStat conferenceStat);
	/**
	 * 同级党支部排行情况统计
	 * @date 2018年6月20日 下午3:54:57 
	 * @author hanxiangyu
	 * @param conferenceStat
	 * @return
	 */
	public List<ConferenceStat> getPartyOrganizationRank(ConferenceStatQuery query);
	/**
	 * 同级当前登录人同级支部的情况
	 * @date 2018年6月25日 下午1:55:11 
	 * @param conferenceStat
	 * @return
	 */
	public List<ConferenceStat> getPartyOrganizationByAdmin(ConferenceStatQuery query);
	
	/**
	 * 获取会议记录列表管理员
	 * @param query
	 * @return
	 */
	public List<ConferenceStat> getBranchStudy(ConferenceStatQuery query);
	
	
	/**
	 * 本支部组织生活统计平均数
	 * @date 2018年6月19日 下午7:26:49 
	 * @author hanxiangyu
	 * @param conferenceStat
	 * @return
	 */
	public List<ConferenceStat> findPartyOrganizationLife(ConferenceStatQuery query);
	/**
	 * 统计某类型课完成度
	 * @param query
	 * @return
	 */
	List<ConferenceStat> countConferencePercentage(ConferenceStatQuery query);
	/**
	 * 会议材料数量分布
	 * @param query
	 * @return
	 */
	List<ConferenceStat> countConferenceAttachPercentage(ConferenceStatQuery query);
	/**
	 * 各类型会议完成度（最终版）
	 * @param query
	 * @return
	 * @throws Exception 
	 */
	List<ConferenceStat> countConferencePercentageAvg(ConferenceStatQuery query) throws Exception;
	/**
	 * 各地区总体会议完成度
	 * @param query
	 * @return
	 * @throws Exception
	 */
	List<ConferenceStat> countConferencePercentageRegion(ConferenceStatQuery query) throws Exception;
	
	/**
	 * 各类型会议完成数量占比
	 * @param query
	 * @return
	 * @throws Exception
	 */
	List<ConferenceStat> countConferencePercentageBynum(ConferenceStatQuery query) throws Exception;
	/**
	 * 子级中已完成会议的机构
	 * @param query
	 * @return
	 * @throws Exception
	 */
	List<ConferenceStat> countConferenceFinishOrg(ConferenceStatQuery query) throws Exception;
	
	/**
	 * 各类型会议完成数量机构详情
	 * @param query
	 * @return
	 * @throws Exception
	 */
	List<ConferenceStat> findConferencePercentageByOrg(ConferenceStatQuery query) throws Exception;
	
}
